import { Dialog } from '@nutui/nutui-react-taro'
import React from 'react'
import './index.less'

export interface ConfirmDialogProps {
  /** 是否显示 */
  visible: boolean
  /** 标题 */
  title: string
  /** 内容 */
  content: string
  /** 确认按钮文字 */
  confirmText?: string
  /** 取消按钮文字 */
  cancelText?: string
  /** 确认事件 */
  onConfirm: () => void
  /** 取消事件 */
  onCancel?: () => void
  /** 关闭事件 */
  onClose?: () => void
  /** 自定义类名 */
  className?: string
}

/**
 * ConfirmDialog 确认对话框组件
 * 基于 NutUI Dialog 封装的确认对话框
 */
const ConfirmDialog: React.FC<ConfirmDialogProps> = ({
  visible,
  title,
  content,
  confirmText = '确定',
  cancelText = '取消',
  onConfirm,
  onCancel,
  onClose,
  className = '',
}) => {
  const handleClose = () => {
    if (onClose) {
      onClose()
    }
    if (onCancel) {
      onCancel()
    }
  }

  return (
    <Dialog
      visible={visible}
      title={title}
      content={content}
      confirmText={confirmText}
      cancelText={cancelText}
      onConfirm={onConfirm}
      onClose={handleClose}
      className={`confirm-dialog ${className}`}
    />
  )
}

export default ConfirmDialog

